package com.hhc.service;

import com.hhc.dto.FileDeleteDTO;
import com.hhc.dto.FileDownloadDTO;
import com.hhc.dto.FileUploadDTO;
import com.hhc.entity.FileResource;
import com.hhc.query.FileListQuery;
import java.util.List;
import org.springframework.data.domain.Pageable;

/**
 * 文件资源服务接口
 *
 * @author pc
 */
public interface FileResourceService {

    /**
     * 上传文件
     *
     * @param dto 文件上传信息
     * @return 是否成功
     */
    boolean uploadFile(FileUploadDTO dto);

    /**
     * 下载文件
     *
     * @param dto 文件下载信息
     * @return 文件详情
     */
    FileResource downloadFile(FileDownloadDTO dto);

    /**
     * 删除文件
     *
     * @param dto 文件删除信息
     * @return 是否删除成功
     */
    boolean deleteFile(FileDeleteDTO dto);

    /**
     * 获取文件列表
     *
     * @param query 查询条件
     * @param pageable 分页信息
     * @return 文件列表
     */
    List<FileResource> getFileList(FileListQuery query, Pageable pageable);
}